package mx.com.theboard.server.Servicios;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;
import java.util.LinkedList;


import mx.com.theboard.client.InterfacesServlets.GuardaNota;
import mx.com.theboard.client.InterfacesServlets.Login;
import mx.com.theboard.client.InterfacesServlets.ReadJson;
import mx.com.theboard.client.InterfacesServlets.Registro;
import mx.com.theboard.server.handlers.NotaArchivoHandler;
import mx.com.theboard.server.handlers.NotaDibujoHandler;
import mx.com.theboard.server.handlers.NotaHandlerI;
import mx.com.theboard.server.handlers.NotaImagenHandler;
import mx.com.theboard.server.handlers.NotaTextoHandler;
import mx.com.theboard.shared.Constantes;
import mx.com.theboard.shared.entidades.Nota;
import mx.com.theboard.shared.entidades.Usuario;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.Query.FilterOperator;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.google.code.twig.ObjectDatastore;
import com.google.code.twig.annotation.AnnotationObjectDatastore;


public class RegistroImpl extends RemoteServiceServlet implements Registro {

	@Override
	public Usuario greetServer(Usuario usuario) throws IllegalArgumentException {
		if(!existeUsuario(usuario)){
			ObjectDatastore datastore  = new AnnotationObjectDatastore();
			Key key = datastore.store().instance(usuario).now();
			
			Iterator<Usuario> usuariosbase = datastore.find().
												type(Usuario.class).
												addFilter("usuario", FilterOperator.EQUAL, usuario.getUsuario()).
												now();
			if(usuariosbase.hasNext()){
				return usuariosbase.next();
			}
		}
		return null;
	}
	
	
	public boolean existeUsuario(Usuario usuario){
		ObjectDatastore datastore  = new AnnotationObjectDatastore();
		Iterator<Usuario> usuariosbase = datastore.find().
											type(Usuario.class).
											addFilter("usuario", FilterOperator.EQUAL, usuario.getUsuario()).
											now();
		if(usuariosbase.hasNext()){
			return true;
		}else{
			return false;
		}
	}
	

	
}
